package org.jeecg.modules.gwcjava.jiekou.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import org.jeecg.modules.zhoupackage.pojo.MlccCartInfo;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 面料订单表
 *
 * @author zxl
 * @since 1.8
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
public class FabricOrderInfo {
    /**
     * 主键ID
     */
    @TableId(type = IdType.AUTO)
    private Integer id;

    /**
     * 订单号
     */
    @Excel(name = "订单编号")
    private String orderSn;

    /**
     * 用户ID
     */
    private String userId;

    /**
     * 物流单号
     */
    private String logisticsSn;

    /**
     * 订单金额
     */
    private String orderMoney;

    /**
     * 包装方式
     */
    private String packaging;

    /**
     * 快递ID
     */
    private String courierId;

    /**
     * 地址类型
     */
    private String addressType;

    /**
     * 收货地址
     */
    private String address;

    /**
     * 第三方订单号
     */
    private String otherOrdersn;

    /**
     * 面料来源
     */
    private String fabricSource;

    /**
     * 支付类型
     * 默认0支付宝，1微信，2银联，3代付
     */
    private Integer applyType;

    /**
     * 购物车ID
     */
    private String cartId;

    /**
     * 返修标志
     * 默认0正常，1退货，2换货
     */
    private Integer returnLogo;

    /**
     * 订单状态：默认0未支付，
     * 1已支付(店员显示待提交)，2店长已提交（后台未接单），3后台已确认（已接单，前端裁剪中），
     * 4已发货（前端可以查看物流，确认收货），5点击确认收货（已完成），6售后（售后才有退换货），
     * 7总后台售后（前端也是售后)，8总后台已确认
     */
    private Integer status;

    /**
     * 备注
     */
    private String remark;

    /**
     * 创建人
     */
    private String createBy;

    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;

    /**
     * 更新人员
     */
    private String updateBy;

    /**
     * 更新时间
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateTime;

    /**
     * 支付时间
     */
    @TableField(exist = false)
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date payTime;

    /**
     * 部门编码
     */
    private String sysOrgCode;

    /**
     * 购物车列表
     */
    @TableField(exist = false)
    private List<MlccCartInfo> cartInfoList;

    /**
     * 门店ID
     */
    private String storeId;

    /**
     * 门店编码
     */
    private String storeCode;

    /**
     * 收货人名称
     */
    private String name;

    /**
     * 收货人电话
     */
    private String phone;

    /**
     * 快递名称
     */
    @TableField(exist = false)
    private String courierName;

    /**
     * 快递名称
     */
    @TableField(exist = false)
    private String gysCode;

    /**
     * 门店编号
     */
    @TableField(exist = false)
    private String storeName;

    // 三个支付金额
    /**
     * 抵扣额度支付金额
     */
    private BigDecimal deductionPay;

    /**
     * 月结支付的金额
     */
    private BigDecimal monthPay;

    /**
     * 余额支付的金额
     */
    private BigDecimal balancePay;

    /**
     * 调价前金额
     */
    private BigDecimal priorPrice;

    /**
     * 真·客户名称
     */
    @TableField(exist = false)
    private String companyName;
    /**
     * 真·客户编号
     */
    @TableField(exist = false)
    private String companyCode;
}
